/**
 * javascript函数的的参数，是传值还是传址（传引用）
 */
var a = 1;
var b = 2;

var add=function(x, y) {
	++x;
	y = 10;
};

add(a,b);
alert(a + ";" + b); //结果:是1,2；其实a，b的值并没有改变,表示传入的是值



var o = {name:"Harry", age:24}; // 定义object对象时，必须要用{不加引号:字符串必须加引号}这样来定义，这是规则
var add2=function() {
	o["name"] = "LuJingli"; // 修改对象的某个属性时，必须：对象名称["属性"]这样，引号不能掉
};

add2();
alert(o["name"] + o.age + o["age"] + o.name); //结果：Lujingli2424LuJingli；其实对象的属性已经被修改了另外： o["name"]等同于 o.name

/**
 * 证明 : 
 * 基础变量是传递数值的
 * 自定义对的传参方式是传得"地址",因此，基础变量在方法体里面无论怎么修改，一旦出了方法体，基础变量还是原来的值，但是自定义的却不一样，自定义的参数在方法体里面被修改过后，出了方法体同样还是被修改后的值
 * 
 * java里面在传值和传地址方面跟js不一样，它有它的作用域的问题，如果在同一个作用域，前面有改变，那么后面的值不管基础类型和自定义的都会改变，如果不在同一个作用域，就互不干涉
 * 
 * 上面说的是错误的，如果将add方法里面直接修改a，和b这2个变量，那么a和b的值同样会被修改，这个是作用域的问题。
 */


